package com.test.aoptest;

import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.springframework.stereotype.Component;
import org.aspectj.lang.annotation.*;

    @Aspect
    @Component
    public class LogAspect {
//        @Pointcut("execution(public * com.test.controller.UserController.loginTo(..))")
//        public void LogAspect(){}
//
//        @Before("LogAspect()") //在控制器方法前执行
//        public void doBefore(JoinPoint joinPoint){
//
//            System.out.println("控制器方法执行前...");
//        }
//
//        @After("LogAspect()")//在控制器方法后执行
//        public void doAfter(JoinPoint joinPoint){
//            System.out.println("控制器方法执行后...");
//        }
//
//        @AfterReturning("LogAspect()")//在方法执行后返回一个结果后执行
//        public void doAfterReturning(JoinPoint joinPoint){
//            System.out.println("控制器方法执行之后出现异常...");
//        }
//
//        @AfterThrowing("LogAspect()")//在方法执行过程中抛出异常的时候执行
//        public void deAfterThrowing(JoinPoint joinPoint){
//            System.out.println("控制器方法执行过程出现异常...");
//        }
//
//        @Around("LogAspect()")//环绕通知，就是可以在执行前后都使用
//        public Object deAround(ProceedingJoinPoint joinPoint) throws Throwable{
//            System.out.println("环绕通知");
//            return joinPoint.proceed();
//        }



}
